home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 8: LINUX Games
/
Linux Cubed Series 8 - LINUX Games.iso
/
games
/
x11
/
rpg
/
crossfir.92
/
crossfir
/
crossfire-0.92.5
/
doc
/
Multigod.doc
< prev
next >
Wrap
Text File
|
1996-07-24
|
10KB
|
263 lines
This document is a brief description of the MULTIGOD hack.
--------------
Introduction -
--------------
The intention of this code is to enhance the enjoy-ability and
playability of clerical characters in the new skills/exp scheme.
This is done by giving players gods to worship who in turn effect
clerical magic and powers. Included in this patch are several new
spells which (hopefully) will allow the priest characters a better
chance to gain xp at higher levels. Notably, the "holy orb" and
"holy word" spells have been revamped.
When MULTIPLE_GODS flag is defined in include/config.h, this
code is enabled. This code (described below) encompasses 3
main parts: an array of gods that players/NPCs may worship,
new clerical spells which rely on the worshiped god's attrib-
utes in Gods[] array and, altars/praying--the interface between
a worshiper and their god.
b.t.
thomas@astro.psu.edu
---------
Outline -
---------
1. Instructions to Players - how to use this code.
2. Description of code -
a. Gods[] array.
b. New spells.
c. About altars/praying.
3. TODO/Idea list
-------------------------
Instructions to Players -
-------------------------
This new code allows the player-priest to adopt a God for
worship. In turn the worship of this god will effect how a
cleric casts prayers and gains xp. For example, if you worship
the god of the undead, dont expect to be able to gain cleric
xp for killing undead! But you might gain, as a priest of the
undead, greater powers of commanding undead, and xp for killing
living creatures. Such priest, because their god's domain is the
dead, probably wont be that effective at healing either.
To use the code is simple. Stand your character over an
aligned altar (it will be named like "altar of <godname>") and
use your "praying" skill. More than likely you will become a
worshiper of that god. It is possible to change worship by praying
over another god's altar, but as you progress in clerical xp, this
will become more and more difficult. Also, each time you pray over
another god's altar you can lose experience!-- so don't do this
with out consideration and need!
---------------------
Description of code -
---------------------
Hopefully this code is flexible, and easy to configure. Part of the
reason for creating this code was to allow server maintainers to
develop their own "mythos". From a personal point of view, I hate
having the old "Christian" aligned mythos, but if that's what you
like, you can replicate it with this code too (see below).
a. Gods[] array.
----------------
This array is found in include/gods.h. The structure for the array is:
typedef struct god_struct {
char *name; /* how to describe the god to the player */
char *enemy; /* Name of the opposing god */
unsigned int attacktype /* Favored attack of the god, usually AT_FEAR */
unsigned int immune; /* Attacks which the god's priest may be immune */
unsigned int protected; /* Attacks which do half damage to the priest */
unsigned int vulnerable /* Attacks which do double damage to the priest */
uint32 path_attuned; /* Paths the god's priest is attuned to */
uint32 path_repelled; /* Paths the god's priest is repelled from */
uint32 path_denied; /* Paths the gods's priest is denied access to */
char *aligned_race; /* name of the race of creatures aligned w/ the god */
char *enemy_race; /* name of the race of "enemy" creatures */
} god;
Here is a fuller description of Gods[] array values. If a value is not
required to be specified in the array, it is noted below.
name - name of the god (required)
enemy - diametrically opposed god, use "none" if none exists
(required)
attacktype - favored attack of this god, used in spells of summon
avatar, holy word. Recipients of "holy possession" get
too. (required)
immune - Recipient of "holy possession" gets this.
protected - Priest of this god gets this.
vulnerable - Priest of this god and recipient of "curse" spell gets
this.
path_attuned - priest of this god and recipient of "bless" gets this
path_repelled - priest and recipient of "curse" gets this
path_denied - priest and recipient of "curse" gets this
aligned_race - comma delimited list of the races of creatures that are
aligned with the god. "summon cult monsters" uses.
Value must be "none" if no race exists. (required)
enemy_race - comma delimited list of the races of creatures "holy word",
"holy possession" spells will effect. Value entry must be
"none" if no such race(s) exists. (required)
Here are 2 entries from the default Gods array. I will use 2 "gods"
that everyone is probably familiar with: the Christian "God" and "Satan":
/* the Christian god */
{"God", "Satan", AT_FEAR|AT_WEAPONMAGIC, 66688, 66688, 0,
PATH_RESTORE|PATH_TURNING, PATH_NULL, PATH_WOUNDING,
"angel", "undead,skeleton,demon"},
/* the Christian "devil" */
{"Satan", "God", AT_ACID|AT_FIRE|AT_DRAIN, 132, 132, 131072,
PATH_WOUNDING, PATH_TURNING, PATH_RESTORE, "
"undead,skeleton,demon", "angel"},
Note some of the big differences here in terms of spell_paths, races, etc.
These entries were designed to be roughly polar opposite gods.
For designing new gods. You should make sure that worshiping a god will
be "useful" in some way. Either give the god a favorable attack (I
suggest most "powerfull" gods have AT_WEAPONMAGIC so thier avatars are
strong) and one or two immunities too. Don't forget play-balance
however! Almost all gods would have a vulnerability for every immunity.
b. New spells.
--------------
The following table lists new (and revamped) spells w/ short description
of each:
Spell (level, grace) Description
------------------- ----------------------
Summon avatar (10,60) Summons a "golem" that is tailored to
the powers of the worshiped god. This
spell is more powerfull (in general)
than a summoned elemental and is one
of the priest's most potent attack
spells.
Summon cult monsters (3,10) Summons creatures that have race flag
set to the same value as the priest's
God[].aligned_race. Depending on listed
creatures can be powerfull/wimpy spell.
bless (2,8) Enhances the recipients combat ability
and confers some of the gods protection.
curse (2,8) Decreases the recipients combat ability
and confers some vulnerabilities of the
god too.
consecrate (4,35) Makes an altar aligned with the casters
god.
regeneration (7,15) Recipient regenerates damage faster
(temporarily)
cause critical wounds (7,25) like previous cause wounds spells, but
more potent. Lesser spells now have
decreased grace cost to make them
more useful.
holy word (1,4) Revamped this spell so that only
creatures with race Gods[].enemy_race
are effected. Now, holy word may effect
more than just undead!
holy orb (8,10) Revamped this spell so that only
creatures with race Gods[].enemy_race
are effected. Also, made it more potent.
insect plague (9, 45) Sends small poisonous insects crawling
over a hapless target.
holy wrath (13, 40) Most deathly of the "holy word" spells.
staff to snake (2, 8) Makes the clerics quarterstaff into a snake
that they may control and smite heathen
with.
call holy servant(6,30) Summons a servant of the priest's god
wall of thorns (5, 25) As suggests, creates a wall of thorns
c.Altars and praying skill
--------------------------
When a player prays over an altar, one of 3 things may happen based
on the players currently worshiped god:
(1) "unaligned" player prays over an altar -- results in that player
becoming a worshiper of the god the altar is dedicated to.
(2) player prays over their god's altar -- results in faster grace
regeneration. In addition, player may pray to gain up to 2x their
normal amount of grace ("maxgrace"). Once in a great while, a
faithful worshiper praying at their god's altar may receive
additional help.
(3) player prays over alien god's altar -- results in punishment
of the player (generally they lose clerical xp) and *may* result in
defection of the player to the god who the altar is dedicated to.
Code may be found in the file server/gods.c and common/map.c. Map-makers
wishing to "dedicate" an altar in a particular map for a particular
god may do so by setting the name of the altar to "altar of <godname>"
and the value of altar->title to <godname>. Once this is done, the
code 'baptize_altar' will skip over the dedicated altar when the map
is loaded.
----------------
Todo/Ideas list-
----------------
Heh, what more could be done? :) Well....
-- better handling of defecting clerics. Right now they just lose
xp, why not summon a few monsters for retribution too? (base summoned
critters on clerical level or map difficulty) A loss of Wis stat
when the player is successful in defecting may be appropriate too.
(high level players only)
-- More spells for clerics. Either dealing wi/ Gods (as summon cult
monsters) or as stand-alone spells (like cause wounds spells).
-- Allow sacrifices. This is an excellent way to give a cleric xp.
Need to create enemy_race creatures w/ bodyparts we can sacrifice,
and designate a pointer in Gods{} to the appropriate array of stuff
we can sacrifice for xp.
-- Archetype "bible". This randomly occuring arch would be a read_book
that describes a randomly selected god's attributes to the reader.
Not everyone will be familiar with the gods created by the server
maintainer, so we need to allow a facility to let players know a god's
attributes.